Remove root field from Resolve.
authorAleksey Kladov <aleksey.kladov@gmail.com>
Wed, 17 Aug 2016 22:01:19 +0000 (01:01 +0300)
committerAleksey Kladov <aleksey.kladov@gmail.com>
Thu, 18 Aug 2016 18:49:34 +0000 (21:49 +0300)
src/cargo/core/resolver/encode.rs
src/cargo/core/resolver/mod.rs
src/cargo/ops/cargo_rustc/context.rs
src/cargo/ops/resolve.rs
tests/resolve.rs

index ca4cdec2e5b99e42a111d59ed482ff1880cf7635..97623b718abaa415dd94a19eb25e2d5025e67a99 100644 (file)
@@ -140,7 +140,6 @@ impl EncodableResolve {
 
         Ok(Resolve {
             graph: g,
-            root: root,
             features: HashMap::new(),
             replacements: replacements,
             checksums: checksums,
index d796a5c7241fdd307fd6ef317e536846706cc411..7a9e953365a6283e73f375b154add2d1efd195f6 100644 (file)
@@ -69,14 +69,13 @@ mod encode;
 /// is a package and edges represent dependencies between packages.
 ///
 /// Each instance of `Resolve` also understands the full set of features used
-/// for each package as well as what the root package is.
+/// for each package.
 #[derive(PartialEq, Eq, Clone)]
 pub struct Resolve {
     graph: Graph<PackageId>,
     replacements: HashMap<PackageId, PackageId>,
     features: HashMap<PackageId, HashSet<String>>,
     checksums: HashMap<PackageId, Option<String>>,
-    root: PackageId,
     metadata: Metadata,
 }
 
@@ -200,10 +199,6 @@ unable to verify that `{0}` is the same as when the lockfile was generated
         self.graph.iter()
     }
 
-    pub fn root(&self) -> &PackageId {
-        &self.root
-    }
-
     pub fn deps(&self, pkg: &PackageId) -> Deps {
         Deps { edges: self.graph.edges(pkg), resolve: self }
     }
@@ -268,8 +263,7 @@ struct Context<'a> {
 }
 
 /// Builds the list of all packages required to build the first argument.
-pub fn resolve(root: &PackageId,
-               summaries: &[(Summary, Method)],
+pub fn resolve(summaries: &[(Summary, Method)],
                replacements: &[(PackageIdSpec, Dependency)],
                registry: &mut Registry) -> CargoResult<Resolve> {
     let cx = Context {
@@ -279,13 +273,12 @@ pub fn resolve(root: &PackageId,
         activations: HashMap::new(),
         replacements: replacements,
     };
-    let _p = profile::start(format!("resolving: {}", root));
+    let _p = profile::start(format!("resolving"));
     let cx = try!(activate_deps_loop(cx, registry, summaries));
 
     let mut resolve = Resolve {
         graph: cx.resolve_graph,
         features: cx.resolve_features,
-        root: root.clone(),
         checksums: HashMap::new(),
         metadata: BTreeMap::new(),
         replacements: cx.resolve_replacements,
index 03c0b0d1881d674df531482eb09e21cb83b2545a..af915c2241a6f6f1c46e90a9d0e83c4dfe6c05ca 100644 (file)
@@ -76,7 +76,6 @@ impl<'a, 'cfg> Context<'a, 'cfg> {
             Arc::new(Box::new(ProcessEngine))
         });
         let current_package = try!(ws.current()).package_id().clone();
-        assert_eq!(&current_package, resolve.root());
         Ok(Context {
             host: host_layout,
             target: target_layout,
index 10fb4aa87c92fe41f467d388220ad86fef39da81..9ec3f55f4356624adae5047ecf15fbe08d5c13da 100644 (file)
@@ -148,10 +148,7 @@ pub fn resolve_with_previous<'a>(registry: &mut PackageRegistry,
         None => root_replace.to_vec(),
     };
 
-    let mut resolved = try!(resolver::resolve(try!(ws.current()).package_id(),
-                                              &summaries,
-                                              &replace,
-                                              registry));
+    let mut resolved = try!(resolver::resolve(&summaries, &replace, registry));
     if let Some(previous) = previous {
         try!(resolved.merge_from(previous));
     }
index c472fae8eef8df253f3b8acc0cbfd3497bebb601..9e30c0028600b6e955cc5e189cf9c4c185bdbc13 100644 (file)
@@ -18,8 +18,7 @@ fn resolve<R: Registry>(pkg: PackageId, deps: Vec<Dependency>,
                         -> CargoResult<Vec<PackageId>> {
     let summary = Summary::new(pkg.clone(), deps, HashMap::new()).unwrap();
     let method = Method::Everything;
-    Ok(try!(resolver::resolve(&pkg,
-                              &[(summary, method)],
+    Ok(try!(resolver::resolve(&[(summary, method)],
                               &[],
                               registry)).iter().map(|p| {
         p.clone()